// 封装一个基础路径
const baseURL = "https://api-hmugo-web.itheima.net/api/public/v1"
// 设置一个计数器累加：
let requestCount = 0
// 解构出url 和...config剩余参数
const request = ({ url, ...config }) => {
    // 参数里的config是剩余运算符

    // 需要返回一个promise对象！它没有，所以就自己新建一个呗
    return new Promise((resolve, reject) => {
        // 在正式发起请求之前：设置一个加载中的菊花
        uni.showNavigationBarLoading()
        requestCount++
        // if (config.url.startsWith('/my/')) {
        //     config.header = {
        //         ...config.header,   //把config给解构出来！！然后呢，再统一给 my开头的需要token值的接口加上token
        //         Authorization: uni.getStorageSync('token')

        //     }
        // }


        //   返回的：一个是成功的状态、一个是失败的状态
        uni.request({
            // 这里是展开运算符，把所有的参数都展开，作为uni.request的参数！
            ...config,
            url: baseURL + url, //把url单独提取出来，在参数里的
            // data: config.data,   对象里的东西，都不需要啦
            // header: config.header,

            success: (res) => {
                resolve(res)
            },
            fail: (err) => {
                reject(err)
            },
            // complete	function  自己去查文档呀  接口调用结束的回调函数（调用成功、失败都会执行）
            complete: () => {
                requestCount--
                if (requestCount === 0) {
                    uni.hideNavigationBarLoading()
                }
            }
        });
    })
}

export default request



